﻿using System.Collections.Generic;
using CTS.Data.Domain.Dao;

namespace CTS.Data.APMenus.Domain.Dao
{
    /// <summary>
    /// MenuArgComDao
    /// </summary>
    public class MenuArgComDao : GenericDao<EntitiesDataContext>
    {
        // Định nghĩa hằng file sql
        public const string MENUARGCOMDAO_GETLISTBYMENU_SQL = "MenuArgComDao_GetListByMenu.sql";

        /// <summary>
        /// Kiểm tra tồn tại arg
        /// </summary>
        public bool IsExist(string menuCd, string argCd, bool ignoreDeleteFlag)
        {
            // Tạo danh sách khóa chính
            var keys = new string[] { menuCd, argCd };
            // Kết quả trả về
            return IsExist<APMenuArg>(keys, ignoreDeleteFlag);
        }

        /// <summary>
        /// Lấy thông tin arg
        /// </summary>
        public APMenuArg GetInfo(string menuCd, string argCd, bool ignoreDeleteFlag)
        {
            // Tạo danh sách khóa chính
            var keys = new string[] { menuCd, argCd };
            // Kết quả trả về
            return GetSingle<APMenuArg>(keys, ignoreDeleteFlag);
        }

        /// <summary>
        /// Lấy danh sách arg
        /// </summary>
        public IList<APMenuArg> GetList(bool ignoreDeleteFlag)
        {
            // Kết quả trả về
            return GetList<APMenuArg>(ignoreDeleteFlag);
        }

        /// <summary>
        /// Lấy danh sách arg
        /// </summary>
        public IList<APMenuArg> GetList(string menuCd, bool ignoreDeleteFlag)
        {
            // Tạo tham số
            var param = new {
                MenuCd = menuCd,
                IgnoreDeleteFlag = ignoreDeleteFlag
            };
            // Kết quả trả về
            return GetListByFile<APMenuArg>(MENUARGCOMDAO_GETLISTBYMENU_SQL, param);
        }
    }
}
